//
//  NSDate+Category.swift
//  SinaWebo
//
//  Created by mis on 16/3/21.
//  Copyright © 2016年 mis. All rights reserved.
//

import Foundation

extension NSDate {
    class func sinaDate(dateString: String) -> NSDate?  {
        let dateformatter = NSDateFormatter()
        dateformatter.locale = NSLocale(localeIdentifier: "en")
        dateformatter.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        return dateformatter.dateFromString(dateString)
    }
    
    /*
    刚刚(一分钟内)
    X分钟前(一小时内)
    X小时前(当天)
    -------------
    昨天 HH:mm(昨天)
    MM-dd HH:mm(一年内)
    yyyy-MM-dd HH:mm(更早期)
    */
    
    // 将时间转成描述字符串
    func fullDescription() -> String {
        let calender = NSCalendar.currentCalendar()
        if calender.isDateInToday(self) {
            let delta = Int(NSDate().timeIntervalSinceDate(self))
            if delta < 60 {
                return "刚刚"
            }else if delta < 60 * 60 {
                return "\(delta / 60)分钟前"
            }
            return "\(delta / (60 * 60))小时前"
        }else {
            var dateformatString = ""
            if calender.isDateInYesterday(self) {
                dateformatString = "昨天 HH:mm"
            }else {
                // unitflay 比较单位
                //fromDate 表示的时需要比较的时间
                //toDate  表示 被比较的时间
                let result = calender.components(.Year, fromDate: self, toDate: NSDate(), options: [])
                if result.year == 0 {
                    dateformatString = "MM-dd HH:mm"
                }else {
                    dateformatString = "yyyy-MM-dd HH:mm"
                }
            }
            let dateformatter = NSDateFormatter()
            dateformatter.dateFormat = dateformatString
            return dateformatter.stringFromDate(self)
        }
    }
}
